<html>
<head><meta charset="utf-8"><title>meeting 2021-01-26 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html">meeting 2021-01-26</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="224080686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224080686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224080686">(Jan 26 2021 at 18:18)</a>:</h4>
<p>So, I'm entirely sure what we should discuss today.</p>
<p>Last week, we had a zoom meeting where we decided that we wanted to make the focus of 2021 be "async fn in traits", with that encompassing a few different features: 1) Named impl trait 2) GATs with lifetimes 3) Some impl trait lifetime inference extensions 4) Possibly extending GATs with non-lifetime types 5) Possibly other kinds of sugar</p>
<p>I think we also decided that the next steps would be to "take stock" of the current state of the features and decide on their next steps. We probably expected this bit to be async. But we could also just a spend a meeting each for named impl trait and GATs to go over them. This might require a bit of prep work from someone (likely me or <span class="user-mention" data-user-id="116009">@nikomatsakis</span>, maybe <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>) in terms of going over the relevant RFC, looking at current relevant issues, looking at relevant tests, and maybe just playing with some code. All in order to "get prepared" to help drive the discussion.</p>
<p>For this meeting though, maybe if might be best to just give <span class="user-mention" data-user-id="116009">@nikomatsakis</span> an hour of sync discussion about the open PRs on his plate to review <span aria-label="stuck out tongue wink" class="emoji emoji-1f61c" role="img" title="stuck out tongue wink">:stuck_out_tongue_wink:</span> I would actually like some sync conversation on the rustc binder refactor, but that doesn't necessarily have to be in this meeting.</p>
<p>Anyways, open to thoughts here from <span class="user-mention" data-user-id="116009">@nikomatsakis</span> or others</p>



<a name="224102571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102571">(Jan 26 2021 at 21:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> around?</p>



<a name="224102597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102597">(Jan 26 2021 at 21:02)</a>:</h4>
<p>I'm around</p>



<a name="224102743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102743">(Jan 26 2021 at 21:03)</a>:</h4>
<p>Let me read what you wrote :)</p>



<a name="224102769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102769">(Jan 26 2021 at 21:03)</a>:</h4>
<p>I am still on board with this plan and I've been thinking more about it</p>



<a name="224102816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102816">(Jan 26 2021 at 21:03)</a>:</h4>
<p>(That is, the plan of having async fn in traits be a major focus)</p>



<a name="224102900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102900">(Jan 26 2021 at 21:04)</a>:</h4>
<p>I started a hackmd, as an aside</p>



<a name="224102914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102914">(Jan 26 2021 at 21:04)</a>:</h4>
<p><a href="https://hackmd.io/5kCE2T6sTDijhqMx8kaikw">https://hackmd.io/5kCE2T6sTDijhqMx8kaikw</a></p>



<a name="224102932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102932">(Jan 26 2021 at 21:04)</a>:</h4>
<p>Kind of cleaned up, simplified version of our discussion</p>



<a name="224102961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102961">(Jan 26 2021 at 21:04)</a>:</h4>
<p>Oh awesome</p>



<a name="224102969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224102969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224102969">(Jan 26 2021 at 21:04)</a>:</h4>
<p>I woudl be game to spend this hour doing reviews and sync discussion, in any case</p>



<a name="224103000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103000">(Jan 26 2021 at 21:05)</a>:</h4>
<p>We (<span class="user-mention" data-user-id="125131">@detrumi</span>, <span class="user-mention" data-user-id="283967">@Zahari Dichev</span>, and I) just finished a quick zoom meeting doing some discussion related to type library</p>



<a name="224103024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103024">(Jan 26 2021 at 21:05)</a>:</h4>
<p>Ah, nice</p>



<a name="224103035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103035">(Jan 26 2021 at 21:05)</a>:</h4>
<p>I wanted to figure out if/where that falls on this list -- or maybe it's a separate list</p>



<a name="224103075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103075">(Jan 26 2021 at 21:05)</a>:</h4>
<p>It's separate, I think</p>



<a name="224103081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103081">(Jan 26 2021 at 21:05)</a>:</h4>
<p>i'm going to 'mark all messages' as read in this stream</p>



<a name="224103086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103086">(Jan 26 2021 at 21:05)</a>:</h4>
<p>forgive me ;p</p>



<a name="224103162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103162">(Jan 26 2021 at 21:06)</a>:</h4>
<p>i'm not 100% sure they are separate, but they are somewhat separate</p>



<a name="224103193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103193">(Jan 26 2021 at 21:06)</a>:</h4>
<p>they might start to be entangled if/when we extend GATs to cover types</p>



<a name="224103237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103237">(Jan 26 2021 at 21:06)</a>:</h4>
<p>there comes some point where we are extending the expressiveness of the system to the point that we're re-inventing chalk</p>



<a name="224103290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103290">(Jan 26 2021 at 21:07)</a>:</h4>
<p>When I say separate, I mean that the work on the type library doesn't directly overlap with implementing/stabilizing the features here</p>



<a name="224103291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103291">(Jan 26 2021 at 21:07)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224103237">said</a>:</p>
<blockquote>
<p>there comes some point where we are extending the expressiveness of the system to the point that we're re-inventing chalk</p>
</blockquote>
<p>I did briefly speak about this on the call</p>



<a name="224103444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103444">(Jan 26 2021 at 21:08)</a>:</h4>
<p>I know nothing about this</p>



<a name="224103445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103445">(Jan 26 2021 at 21:08)</a>:</h4>
<p>Just saw <a href="https://github.com/rust-lang/rust/issues/61997">#61997</a></p>



<a name="224103463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103463">(Jan 26 2021 at 21:08)</a>:</h4>
<p>Did you want to talk about open PRs today?</p>



<a name="224103475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103475">(Jan 26 2021 at 21:09)</a>:</h4>
<p>Sure</p>



<a name="224103487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103487">(Jan 26 2021 at 21:09)</a>:</h4>
<p>I figured that's a good use of time</p>



<a name="224103504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103504">(Jan 26 2021 at 21:09)</a>:</h4>
<p>Let's start with chalk PRs</p>



<a name="224103552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103552">(Jan 26 2021 at 21:09)</a>:</h4>
<p><a href="https://github.com/rust-lang/chalk/issues/661">chalk#661</a></p>



<a name="224103555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103555">(Jan 26 2021 at 21:09)</a>:</h4>
<p>quick question first</p>



<a name="224103609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103609">(Jan 26 2021 at 21:10)</a>:</h4>
<p><span class="user-mention" data-user-id="255061">@Léo Lanteri Thauvin</span> -- is <a href="https://github.com/rust-lang/rust/pull/79951">https://github.com/rust-lang/rust/pull/79951</a> basically "ready to go"?</p>



<a name="224103617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103617">(Jan 26 2021 at 21:10)</a>:</h4>
<p>I guess I see some late-breaking comments</p>



<a name="224103618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103618">(Jan 26 2021 at 21:10)</a>:</h4>
<p>yes</p>



<a name="224103623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103623">(Jan 26 2021 at 21:10)</a>:</h4>
<p>I was skimming my review queue</p>



<a name="224103629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103629">(Jan 26 2021 at 21:10)</a>:</h4>
<p>ok, it looked that way</p>



<a name="224103675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103675">(Jan 26 2021 at 21:10)</a>:</h4>
<p>ok, <a href="https://github.com/rust-lang/chalk/issues/661">chalk#661</a></p>



<a name="224103695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103695">(Jan 26 2021 at 21:10)</a>:</h4>
<p>I mean, I do see a couple comments, but those could be moved to a later PR</p>



<a name="224103707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103707">(Jan 26 2021 at 21:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224103675">said</a>:</p>
<blockquote>
<p>ok, <a href="https://github.com/rust-lang/chalk/issues/661">chalk#661</a></p>
</blockquote>
<p>Okay, so</p>



<a name="224103725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103725">(Jan 26 2021 at 21:11)</a>:</h4>
<p>This is essentially just cleanup, no "semantic" changes</p>



<a name="224103768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103768">(Jan 26 2021 at 21:11)</a>:</h4>
<p>OK, Im skimming quickly</p>



<a name="224103773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103773">(Jan 26 2021 at 21:11)</a>:</h4>
<p>I'm inclined to r+ though</p>



<a name="224103781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103781">(Jan 26 2021 at 21:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224103609">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="255061">Léo Lanteri Thauvin</span> -- is <a href="https://github.com/rust-lang/rust/pull/79951">https://github.com/rust-lang/rust/pull/79951</a> basically "ready to go"?</p>
</blockquote>
<p>It should be</p>



<a name="224103824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103824">(Jan 26 2021 at 21:12)</a>:</h4>
<p>I just r+'d <a href="https://github.com/rust-lang/rust/issues/79951">#79951</a></p>



<a name="224103874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224103874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224103874">(Jan 26 2021 at 21:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224103725">said</a>:</p>
<blockquote>
<p>This is essentially just cleanup, no "semantic" changes</p>
</blockquote>
<p>The bullet points do a good job of summarizing</p>



<a name="224104021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104021">(Jan 26 2021 at 21:13)</a>:</h4>
<p>Basically, 1) we use the <code>chalk-solve</code> InferenceTable in chalk-engine and chalk-recursive</p>



<a name="224104199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104199">(Jan 26 2021 at 21:14)</a>:</h4>
<p>2) <code>CanonicalStrand</code> is now just <code>Canonical&lt;Strand&gt;</code> and the <code>InferenceTable</code> in <code>Strand</code> is passed separately</p>



<a name="224104342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104342">(Jan 26 2021 at 21:14)</a>:</h4>
<p>3) <code>Variances</code> shares some of the slice interners macro code</p>



<a name="224104529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104529">(Jan 26 2021 at 21:15)</a>:</h4>
<p>this all seems great</p>



<a name="224104542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104542">(Jan 26 2021 at 21:15)</a>:</h4>
<p>I'm going to just trust you and r+ :P</p>



<a name="224104564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104564">(Jan 26 2021 at 21:15)</a>:</h4>
<p>Works for me</p>



<a name="224104603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104603">(Jan 26 2021 at 21:15)</a>:</h4>
<p>"2 way door", as amazon people would say</p>



<a name="224104609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104609">(Jan 26 2021 at 21:15)</a>:</h4>
<p>anyway, go on</p>



<a name="224104671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104671">(Jan 26 2021 at 21:16)</a>:</h4>
<p><a href="https://github.com/rust-lang/chalk/issues/671">chalk#671</a></p>



<a name="224104680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104680">(Jan 26 2021 at 21:16)</a>:</h4>
<p>This one is more complicated</p>



<a name="224104751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104751">(Jan 26 2021 at 21:16)</a>:</h4>
<p>But the problem here is that a goal like</p>
<div class="codehilite"><pre><span></span><code>            exists&lt;&#39;a&gt; {
                if (FromEnv(&amp;&#39;a ())) {
                    WellFormed(&amp;&#39;a ())
                }
            }
</code></pre></div>
<p>was running into problems</p>



<a name="224104781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104781">(Jan 26 2021 at 21:17)</a>:</h4>
<p>For a couple different reasons</p>



<a name="224104913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104913">(Jan 26 2021 at 21:18)</a>:</h4>
<p>mmm</p>



<a name="224104929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104929">(Jan 26 2021 at 21:18)</a>:</h4>
<p>This became apparent when I tried to upgrade chalk in rustc since the canonical program clauses refactor</p>



<a name="224104937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104937">(Jan 26 2021 at 21:18)</a>:</h4>
<p>putting inference variables in the environment is probably fairly fishy and poorly tested</p>



<a name="224104969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104969">(Jan 26 2021 at 21:18)</a>:</h4>
<p>rustc does it a lot</p>



<a name="224104983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104983">(Jan 26 2021 at 21:19)</a>:</h4>
<p>really?</p>



<a name="224104985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224104985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224104985">(Jan 26 2021 at 21:19)</a>:</h4>
<p>Or at least, some form of this</p>



<a name="224105026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105026">(Jan 26 2021 at 21:19)</a>:</h4>
<p>interesting</p>



<a name="224105037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105037">(Jan 26 2021 at 21:19)</a>:</h4>
<p>if you have an example of where it happens in rustc, I'd be curious</p>



<a name="224105064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105064">(Jan 26 2021 at 21:19)</a>:</h4>
<p>huh, kinda weird to put inference vars in the environment, shouldn't inference vars always be scoped somewhere?</p>



<a name="224105099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105099">(Jan 26 2021 at 21:20)</a>:</h4>
<p>in <em>principle</em> it should work</p>



<a name="224105155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105155">(Jan 26 2021 at 21:20)</a>:</h4>
<p>It might be canonical vars in the enviroment for rustc</p>



<a name="224105159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105159">(Jan 26 2021 at 21:20)</a>:</h4>
<p>I'm not sure if/when we will need it, I could imagine it coming up</p>



<a name="224105224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105224">(Jan 26 2021 at 21:20)</a>:</h4>
<p>Well, the changes in this PR are needed for <a href="https://github.com/rust-lang/rust/issues/80593">#80593</a> to work</p>



<a name="224105314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105314">(Jan 26 2021 at 21:21)</a>:</h4>
<p>I'll have to get you the list of failing chalkify tests without this</p>



<a name="224105327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105327">(Jan 26 2021 at 21:21)</a>:</h4>
<p>but it's basically like 70% of them</p>



<a name="224105338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105338">(Jan 26 2021 at 21:21)</a>:</h4>
<blockquote>
<div class="codehilite"><pre><span></span><code>                     let clauses = subst.apply(clauses, context.program().interner());
</code></pre></div>

</blockquote>



<a name="224105349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105349">(Jan 26 2021 at 21:21)</a>:</h4>
<p>that seems suspicious to me</p>



<a name="224105417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105417">(Jan 26 2021 at 21:22)</a>:</h4>
<p>from <a href="https://github.com/rust-lang/chalk/pull/671/files#diff-53486c610ab9bd93077fcccfb0f45d0c38708b8d3188fdd44ceda4494b5d852aR283">this line</a></p>



<a name="224105420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105420">(Jan 26 2021 at 21:22)</a>:</h4>
<p>There's a few suspicious things in this PR tbh</p>



<a name="224105436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105436">(Jan 26 2021 at 21:22)</a>:</h4>
<p>the reason is that I expect the output from <code>program_clauses_for_goal</code> to have no free variables</p>



<a name="224105448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105448">(Jan 26 2021 at 21:22)</a>:</h4>
<p>("closed terms")</p>



<a name="224105458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105458">(Jan 26 2021 at 21:22)</a>:</h4>
<p>so that the substitution would be a no-op</p>



<a name="224105466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105466">(Jan 26 2021 at 21:22)</a>:</h4>
<p>we've definitely failed on this before</p>



<a name="224105493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105493">(Jan 26 2021 at 21:23)</a>:</h4>
<p>It does when the environment does</p>



<a name="224105497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105497">(Jan 26 2021 at 21:23)</a>:</h4>
<p>in places where we were copying types and things out from the goal</p>



<a name="224105502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105502">(Jan 26 2021 at 21:23)</a>:</h4>
<p>hmm</p>



<a name="224105507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105507">(Jan 26 2021 at 21:23)</a>:</h4>
<p>ok</p>



<a name="224105511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105511">(Jan 26 2021 at 21:23)</a>:</h4>
<p>I see</p>



<a name="224105531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105531">(Jan 26 2021 at 21:23)</a>:</h4>
<p>I wonder</p>



<a name="224105536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105536">(Jan 26 2021 at 21:23)</a>:</h4>
<p>Actually yeah, let me write a better example</p>



<a name="224105557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105557">(Jan 26 2021 at 21:23)</a>:</h4>
<p>maybe we should separate out the "from env" part</p>



<a name="224105561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105561">(Jan 26 2021 at 21:23)</a>:</h4>
<p>from the other part</p>



<a name="224105591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105591">(Jan 26 2021 at 21:23)</a>:</h4>
<p>Essentially, there are <code>Canonical</code> bound vars and the environment is referring to them</p>



<a name="224105593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105593">(Jan 26 2021 at 21:23)</a>:</h4>
<p>and invoke the "for environment" part on the instantiated version</p>



<a name="224105682"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105682" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105682">(Jan 26 2021 at 21:24)</a>:</h4>
<p>That would solve it</p>



<a name="224105693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105693">(Jan 26 2021 at 21:24)</a>:</h4>
<p>And remove a lot of the hacks here</p>



<a name="224105728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105728">(Jan 26 2021 at 21:24)</a>:</h4>
<p>Would have to extend that the recursive solver too (same problem)</p>



<a name="224105791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105791">(Jan 26 2021 at 21:25)</a>:</h4>
<p>I think I would prefer that</p>



<a name="224105809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105809">(Jan 26 2021 at 21:25)</a>:</h4>
<p>Well, I'm trying to think: I'm not sure it would solve the <code>Constraints</code> issue</p>



<a name="224105819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105819">(Jan 26 2021 at 21:25)</a>:</h4>
<p>I'd like an assertion on the output from <code>program_clauses_for_goal</code> that it has no free variables, too</p>



<a name="224105842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105842">(Jan 26 2021 at 21:25)</a>:</h4>
<p>to catch future oversights</p>



<a name="224105853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105853">(Jan 26 2021 at 21:25)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224105809">said</a>:</p>
<blockquote>
<p>Well, I'm trying to think: I'm not sure it would solve the <code>Constraints</code> issue</p>
</blockquote>
<p>which issue is this?</p>



<a name="224105928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224105928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224105928">(Jan 26 2021 at 21:26)</a>:</h4>
<p>We have that assertion further down, I think. But it doesn't cover env clauses</p>



<a name="224106004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106004">(Jan 26 2021 at 21:26)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224105853">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224105809">said</a>:</p>
<blockquote>
<p>Well, I'm trying to think: I'm not sure it would solve the <code>Constraints</code> issue</p>
</blockquote>
<p>which issue is this?</p>
</blockquote>
<p>This is the other side of this coin: When the environment refers to the canonically bound vars, the code we have related to <code>Constraints</code> breaks</p>



<a name="224106048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106048">(Jan 26 2021 at 21:27)</a>:</h4>
<p>It's been a bit, so I'm not super clear on the details</p>



<a name="224106232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106232">(Jan 26 2021 at 21:28)</a>:</h4>
<p>In this PR, I didn't solve that, I just put it off by not including the environment in <code>Constraint</code>s</p>



<a name="224106322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106322">(Jan 26 2021 at 21:29)</a>:</h4>
<p>I'm trying to bring this back in cache a bit</p>



<a name="224106360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106360">(Jan 26 2021 at 21:29)</a>:</h4>
<p>a <code>Constraint</code> is the output for the region solver?</p>



<a name="224106375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106375">(Jan 26 2021 at 21:30)</a>:</h4>
<p>we're at "talk to me like I'm 5" level here ;)</p>



<a name="224106437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106437">(Jan 26 2021 at 21:30)</a>:</h4>
<p>I guess we don't need the environment <em>for now</em></p>



<a name="224106482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106482">(Jan 26 2021 at 21:30)</a>:</h4>
<p>(ah, yes, resolving the "how to communicate region constraints and integrate polonius" problem...)</p>



<a name="224106502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106502">(Jan 26 2021 at 21:30)</a>:</h4>
<p>Uh, <code>Constraint</code> is something like <code>!1_0: !1_1</code></p>



<a name="224106519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106519">(Jan 26 2021 at 21:30)</a>:</h4>
<p>right</p>



<a name="224106564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106564">(Jan 26 2021 at 21:31)</a>:</h4>
<p>Yeah, basically this is a bigger design question that I think for now we can just ignore the environment until we solve</p>



<a name="224106566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106566">(Jan 26 2021 at 21:31)</a>:</h4>
<p>should have really called that <code>OutlivesConstraint</code> or something</p>



<a name="224106578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106578">(Jan 26 2021 at 21:31)</a>:</h4>
<p>I think that's ok</p>



<a name="224106597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106597">(Jan 26 2021 at 21:31)</a>:</h4>
<p>I agree we should kick the can down the road</p>



<a name="224106660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106660">(Jan 26 2021 at 21:32)</a>:</h4>
<p>Okay, then I will split the <code>program_clauses_for_goal</code> into an environment bit and the canonical goal bit</p>



<a name="224106716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106716">(Jan 26 2021 at 21:32)</a>:</h4>
<p>should we break this into multiple PRs?</p>



<a name="224106725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106725">(Jan 26 2021 at 21:32)</a>:</h4>
<p>e.g., can the constraint bit be separated?</p>



<a name="224106752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106752">(Jan 26 2021 at 21:32)</a>:</h4>
<p>Maybe?</p>



<a name="224106765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106765">(Jan 26 2021 at 21:32)</a>:</h4>
<p>I guess it's not too much code</p>



<a name="224106781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106781">(Jan 26 2021 at 21:32)</a>:</h4>
<p>Yeah, it's literally one line</p>



<a name="224106959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106959">(Jan 26 2021 at 21:34)</a>:</h4>
<p>There's also a little cleanup in here (adding a <code>Substitute</code> trait that essentially generalizes <code>Substituion::apply</code>)</p>



<a name="224106969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224106969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224106969">(Jan 26 2021 at 21:34)</a>:</h4>
<p>Which I can/will split out</p>



<a name="224107009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107009">(Jan 26 2021 at 21:34)</a>:</h4>
<p>I see a few misc cleanups, yeah, might be ncie to factor those out</p>



<a name="224107017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107017">(Jan 26 2021 at 21:34)</a>:</h4>
<p>ok, next PR :)</p>



<a name="224107073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107073">(Jan 26 2021 at 21:35)</a>:</h4>
<p>Okay, that's it for chalk</p>



<a name="224107081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107081">(Jan 26 2021 at 21:35)</a>:</h4>
<p>now the tough one :)</p>



<a name="224107123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107123">(Jan 26 2021 at 21:35)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/76814">#76814</a></p>



<a name="224107235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107235">(Jan 26 2021 at 21:36)</a>:</h4>
<p>I'm gonna assume that you saw <em>none</em> of my ramblings in the other thread about the interaction between super trait HRTBs and associated type bounds</p>



<a name="224107252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107252">(Jan 26 2021 at 21:36)</a>:</h4>
<p>probably true</p>



<a name="224107270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107270">(Jan 26 2021 at 21:36)</a>:</h4>
<p>though we've talked about this from time to time</p>



<a name="224107297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107297">(Jan 26 2021 at 21:37)</a>:</h4>
<p>heh, that's a nice big pr</p>



<a name="224107330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107330">(Jan 26 2021 at 21:37)</a>:</h4>
<p>And that's <em>after</em> several cleanup PRs being split out</p>



<a name="224107380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107380">(Jan 26 2021 at 21:37)</a>:</h4>
<p>if you want me to reading the other thread, I can -- is it <a class="stream-topic" data-stream-id="144729" href="/#narrow/stream/144729-wg-traits/topic/rustc.20binder.20refactor">#wg-traits &gt; rustc binder refactor</a></p>



<a name="224107408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107408">(Jan 26 2021 at 21:38)</a>:</h4>
<p>Don't worry about it</p>



<a name="224107461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107461">(Jan 26 2021 at 21:38)</a>:</h4>
<p>I'll summarize relevant points here</p>



<a name="224107485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107485">(Jan 26 2021 at 21:38)</a>:</h4>
<p>Let's start with this:</p>
<div class="codehilite"><pre><span></span><code>trait I&lt;&#39;a, &#39;b, &#39;c&gt; {
    type As;
}
trait H&lt;&#39;d, &#39;e&gt;: for&lt;&#39;f&gt; I&lt;&#39;d, &#39;f, &#39;e&gt; + &#39;d {}
fn foo2&lt;T&gt;() where T: for&lt;&#39;g&gt; H&lt;&#39;g, &#39;g, As: for&lt;&#39;h&gt; H&lt;&#39;h, &#39;g&gt; + &#39;g&gt; {}
</code></pre></div>



<a name="224107618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107618">(Jan 26 2021 at 21:39)</a>:</h4>
<p>Now, a valid question is "what are the late bound vars on the <code>As: for&lt;'h&gt; H&lt;'h, 'g&gt;</code> trait ref</p>



<a name="224107656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107656">(Jan 26 2021 at 21:39)</a>:</h4>
<p>And, the answer might shock you:</p>



<a name="224107677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107677">(Jan 26 2021 at 21:39)</a>:</h4>
<p><code>['f, 'g, 'h]</code></p>



<a name="224107784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107784">(Jan 26 2021 at 21:40)</a>:</h4>
<p>this is one heck of an example</p>



<a name="224107812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107812">(Jan 26 2021 at 21:40)</a>:</h4>
<p>Since that essentially desugars to <code>for&lt;'f, 'g, 'h&gt; &lt;T as I&lt;'h, 'f, 'g&gt;&gt;::As: H&lt;'h, 'g&gt;</code></p>



<a name="224107858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107858">(Jan 26 2021 at 21:41)</a>:</h4>
<p>(this is worse: <code>T: for&lt;'i&gt; H&lt;'i, 'i, As: for&lt;'j&gt; H&lt;'j, 'i, As: for&lt;'k&gt; I&lt;'i, 'k, 'j&gt; + 'j&gt; + 'i&gt;</code>)</p>



<a name="224107912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107912">(Jan 26 2021 at 21:41)</a>:</h4>
<p>ok</p>



<a name="224107924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107924">(Jan 26 2021 at 21:41)</a>:</h4>
<p>I'm starting to see what's going on here :)</p>



<a name="224107941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224107941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224107941">(Jan 26 2021 at 21:41)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224107812">said</a>:</p>
<blockquote>
<p>Since that essentially desugars to <code>for&lt;'f, 'g, 'h&gt; &lt;T as I&lt;'h, 'f, 'g&gt;&gt;::As: H&lt;'h, 'g&gt;</code></p>
</blockquote>
<p>But, the problem here is <em>not</em> necessarily finding the late bound vars</p>



<a name="224108109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108109">(Jan 26 2021 at 21:43)</a>:</h4>
<p>The problem is actually keeping track of the fact that "that final <code>'h</code> is going to have a bound index of <code>1</code>, even though in the <code>for&lt;'h&gt;</code> it has an index of <code>0</code></p>



<a name="224108152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108152">(Jan 26 2021 at 21:43)</a>:</h4>
<p>I've tried to approach this a couple different ways. They've all failed</p>



<a name="224108201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108201">(Jan 26 2021 at 21:43)</a>:</h4>
<p>(Failed <em>and</em> are ugly)</p>



<a name="224108203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108203">(Jan 26 2021 at 21:43)</a>:</h4>
<p>sometimes I wonder if debruijn is really so great</p>



<a name="224108283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108283">(Jan 26 2021 at 21:44)</a>:</h4>
<p>but let me read and read this example a few 100 times now</p>



<a name="224108291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108291">(Jan 26 2021 at 21:44)</a>:</h4>
<p>so I can understand the problem</p>



<a name="224108316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108316">(Jan 26 2021 at 21:44)</a>:</h4>
<p>Let me know when you're ready to continue</p>



<a name="224108374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108374">(Jan 26 2021 at 21:45)</a>:</h4>
<p>"bound index" here refers to the index <em>within</em> binder, right?</p>



<a name="224108380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108380">(Jan 26 2021 at 21:45)</a>:</h4>
<p>not the depth</p>



<a name="224108399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108399">(Jan 26 2021 at 21:45)</a>:</h4>
<p>yes</p>



<a name="224108430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108430">(Jan 26 2021 at 21:45)</a>:</h4>
<p>glad you brought that up. Depth here also is terrible</p>



<a name="224108513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108513">(Jan 26 2021 at 21:46)</a>:</h4>
<p>where does this desugaring take place</p>



<a name="224108534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108534">(Jan 26 2021 at 21:46)</a>:</h4>
<p>I have no memory of how this <code>A: Foo&lt;B: Bar&gt;</code> stuff is implemented</p>



<a name="224108539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108539">(Jan 26 2021 at 21:46)</a>:</h4>
<p>In <code>astconv/mod</code></p>



<a name="224108547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108547">(Jan 26 2021 at 21:46)</a>:</h4>
<p>also that notion is both <em>so awesome</em> and ... kind of so subtle</p>



<a name="224108552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108552">(Jan 26 2021 at 21:46)</a>:</h4>
<p>i wonder if we will ever stabilize it</p>



<a name="224108564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108564">(Jan 26 2021 at 21:46)</a>:</h4>
<p>never mind that now</p>



<a name="224108568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108568">(Jan 26 2021 at 21:46)</a>:</h4>
<p>One sec, will pull the code</p>



<a name="224108606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108606">(Jan 26 2021 at 21:47)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/7907345e58b4f4d2c95e5ea9b8e0b3bff8946523/compiler/rustc_typeck/src/astconv/mod.rs#L1051">https://github.com/rust-lang/rust/blob/7907345e58b4f4d2c95e5ea9b8e0b3bff8946523/compiler/rustc_typeck/src/astconv/mod.rs#L1051</a></p>



<a name="224108628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108628">(Jan 26 2021 at 21:47)</a>:</h4>
<p>What's also difficult about this is the bounds are converted lazily</p>



<a name="224108734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108734">(Jan 26 2021 at 21:48)</a>:</h4>
<p>which bounds</p>



<a name="224108740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108740">(Jan 26 2021 at 21:48)</a>:</h4>
<p>and what do you mean by lazilly :)</p>



<a name="224108754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108754">(Jan 26 2021 at 21:48)</a>:</h4>
<p>associated type bounds</p>



<a name="224108870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108870">(Jan 26 2021 at 21:49)</a>:</h4>
<p>Well, I guess there's not really a way to make this <em>not</em> lazy</p>



<a name="224108902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224108902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224108902">(Jan 26 2021 at 21:49)</a>:</h4>
<p>so, nvm that</p>



<a name="224109021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109021">(Jan 26 2021 at 21:50)</a>:</h4>
<p>by lazy</p>



<a name="224109031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109031">(Jan 26 2021 at 21:50)</a>:</h4>
<p>Moreso referring to the fact that <code>ConvertedBindingKind::Equality</code> contains a <code>ty</code> where <code>ast_ty_to_ty</code> has already been called, but <code>ConvertedBindingKind::Constraint</code> has a list of hir bounds</p>



<a name="224109040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109040">(Jan 26 2021 at 21:50)</a>:</h4>
<p>you mean that it is done during hir lowering</p>



<a name="224109069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109069">(Jan 26 2021 at 21:51)</a>:</h4>
<p>this is sort of coming back</p>



<a name="224109201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109201">(Jan 26 2021 at 21:52)</a>:</h4>
<p>Basically, rather than being able to say "here are the bounds, now wrap them in a binder", you have to pass all the bound vars down</p>



<a name="224109226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109226">(Jan 26 2021 at 21:52)</a>:</h4>
<p>I have to say that this is making me ponder the idea of nested binders again =)</p>



<a name="224109283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109283">(Jan 26 2021 at 21:53)</a>:</h4>
<p>I also discovered last night this same sort of issue is run into with <code>for&lt;...&gt; dyn for&lt;...&gt; T: Trait</code></p>



<a name="224109337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109337">(Jan 26 2021 at 21:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224107618">said</a>:</p>
<blockquote>
<p>Now, a valid question is "what are the late bound vars on the <code>As: for&lt;'h&gt; H&lt;'h, 'g&gt;</code> trait ref</p>
</blockquote>
<p>ok, so,</p>



<a name="224109342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109342">(Jan 26 2021 at 21:53)</a>:</h4>
<p>Where <code>T</code> or <code>Trait</code> can refer to the outer bound vars</p>



<a name="224109390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109390">(Jan 26 2021 at 21:53)</a>:</h4>
<p>But we don't pass those down, and would have to completely change the <code>ast_ty_to_ty</code></p>



<a name="224109493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109493">(Jan 26 2021 at 21:54)</a>:</h4>
<p>one part of this is that the debruijn index info is computed by region resolution, right?</p>



<a name="224109514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109514">(Jan 26 2021 at 21:54)</a>:</h4>
<p>i.e., before the <code>ast_ty_to_ty</code> code is invoked?</p>



<a name="224109517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109517">(Jan 26 2021 at 21:54)</a>:</h4>
<p>Yes</p>



<a name="224109534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109534">(Jan 26 2021 at 21:55)</a>:</h4>
<p>and it also computes the offset within the binder, I imagine</p>



<a name="224109551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109551">(Jan 26 2021 at 21:55)</a>:</h4>
<p>that all happens in <code>rustc_resolve/late/lifetimes</code></p>



<a name="224109584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109584">(Jan 26 2021 at 21:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224109534">said</a>:</p>
<blockquote>
<p>and it also computes the offset within the binder, I imagine</p>
</blockquote>
<p>yep</p>



<a name="224109587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109587">(Jan 26 2021 at 21:55)</a>:</h4>
<p>and so a challenge in the case you started with is that some of the things in scope are coming from supertrait expansion</p>



<a name="224109599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109599">(Jan 26 2021 at 21:55)</a>:</h4>
<p>and we don't have access to that info yet probably, certainly not convenient info</p>



<a name="224109610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109610">(Jan 26 2021 at 21:55)</a>:</h4>
<p>Right</p>



<a name="224109622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109622">(Jan 26 2021 at 21:55)</a>:</h4>
<p>so we can compute the info for the <strong>HIR</strong></p>



<a name="224109633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109633">(Jan 26 2021 at 21:55)</a>:</h4>
<p>So, this is where the thoughts I had <em>today</em> come in</p>



<a name="224109695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109695">(Jan 26 2021 at 21:56)</a>:</h4>
<p>this setup for region resolution is kind of ungreat</p>



<a name="224109726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109726">(Jan 26 2021 at 21:56)</a>:</h4>
<p>although i have vague memories that it was useful to lean on in some ways</p>



<a name="224109734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109734">(Jan 26 2021 at 21:56)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224109599">said</a>:</p>
<blockquote>
<p>and we don't have access to that info yet probably, certainly not convenient info</p>
</blockquote>
<p>I don't think we need supertrait expansion for most things</p>



<a name="224109751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109751">(Jan 26 2021 at 21:56)</a>:</h4>
<p>It's really only for that projection</p>



<a name="224109759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109759">(Jan 26 2021 at 21:56)</a>:</h4>
<p>(<code>&lt;T as I&lt;...&gt;&gt;</code>)</p>



<a name="224109778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109778">(Jan 26 2021 at 21:56)</a>:</h4>
<p>But we don't that until late</p>



<a name="224109802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109802">(Jan 26 2021 at 21:57)</a>:</h4>
<p>(by late, I mean in astconv/mod`)</p>



<a name="224109872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109872">(Jan 26 2021 at 21:57)</a>:</h4>
<p>So, as long as super trait bound vars come <em>after</em> all others, this might be okay</p>



<a name="224109909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109909">(Jan 26 2021 at 21:57)</a>:</h4>
<p>i am trying hard not to propose abandoning debruijn indices</p>



<a name="224109955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109955">(Jan 26 2021 at 21:58)</a>:</h4>
<p>Of course, I haven't gotten to this yet</p>



<a name="224109960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109960">(Jan 26 2021 at 21:58)</a>:</h4>
<p>(it's something i've been toying with for a while)</p>



<a name="224109974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109974">(Jan 26 2021 at 21:58)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-01-26/near/224109909">said</a>:</p>
<blockquote>
<p>i am trying hard not to propose abandoning debruijn indices</p>
</blockquote>
<p>In favor of?</p>



<a name="224109978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109978">(Jan 26 2021 at 21:58)</a>:</h4>
<p>but it seems like probably not a great idea at this juncture :P</p>



<a name="224109989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109989">(Jan 26 2021 at 21:58)</a>:</h4>
<p>unique names</p>



<a name="224109997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224109997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224109997">(Jan 26 2021 at 21:58)</a>:</h4>
<p>or something like that</p>



<a name="224110028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110028">(Jan 26 2021 at 21:58)</a>:</h4>
<p>I mean, that is somewhat the rustc system, right</p>



<a name="224110050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110050">(Jan 26 2021 at 21:58)</a>:</h4>
<p>it'd be a big job</p>



<a name="224110064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110064">(Jan 26 2021 at 21:59)</a>:</h4>
<p>i just feel like debruijn are kind of mindbinding</p>



<a name="224110077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110077">(Jan 26 2021 at 21:59)</a>:</h4>
<p>and they do require you to track a lot of context</p>



<a name="224110085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110085">(Jan 26 2021 at 21:59)</a>:</h4>
<p>In basically all of the ast conversion, we're looking of lifetimes by name</p>



<a name="224110141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110141">(Jan 26 2021 at 21:59)</a>:</h4>
<p>I guess my <em>intuition</em> here is that the problem is that we're making resolve lifetimes do work it shouldn't do</p>



<a name="224110161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110161">(Jan 26 2021 at 21:59)</a>:</h4>
<p>I have another call though</p>



<a name="224110166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110166">(Jan 26 2021 at 21:59)</a>:</h4>
<p>I think in <em>this</em> case, it could potentially be easier (and I have thought about using that as an intermediate step), but in general it would be harder</p>



<a name="224110228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110228">(Jan 26 2021 at 22:00)</a>:</h4>
<p>we'll have to pick this up later</p>



<a name="224110299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110299">(Jan 26 2021 at 22:00)</a>:</h4>
<p>I'm gonna put in some work to test out my theory</p>



<a name="224110303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110303">(Jan 26 2021 at 22:00)</a>:</h4>
<p>i could schedule something for tomorrow prob</p>



<a name="224110376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-01-26/near/224110376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-01-26.html#224110376">(Jan 26 2021 at 22:00)</a>:</h4>
<p>But I can talk tomorrow late afternoon</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>